home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / BTV115.ARJ / EXAMPLE4.PAS < prev    next >
Pascal/Delphi Source File  |  1992-06-05  |  5KB  |  160 lines

  1. {$V-,N+,E+,X+}
  2.  
  3. { EXAMPLE4.PAS - demonstrate Btrieve data conversion routines
  4.  
  5.   Requires Turbo Pascal version 6.0
  6. }
  7.  
  8. USES
  9.   CRT,
  10.   BTV,
  11.   BTVTYPE;
  12.  
  13.  
  14. TYPE
  15.   DataRec = record
  16.     Str   : Array[1..25] of Char;
  17.     Ch    : Char;
  18.     Int2  : Integer;
  19.     Int4  : LongInt;
  20.     Flt4  : Single;
  21.     Flt8  : Double;
  22.     Date  : BDateRec;
  23.     Time  : BTimeRec;
  24.     Dec6  : Array[1..6] of Byte;
  25.     Dec10 : Array[1..10] of Byte;
  26.     Mony2 : Array[1..2] of Byte;
  27.     Mony10: Array[1..10] of Byte;
  28.     Logic1: Byte;
  29.     Logic2: Word;
  30.     Num1  : Char;
  31.     Num4  : Array[1..4] of Char;
  32.     Num9  : Array[1..9] of Char;
  33.     BFlt4 : Array[1..4] of Byte;
  34.     BFlt8 : Array[1..8] of Byte;
  35.     LStr  : String[15];
  36.     ZStr  : Array[1..10] of Char;
  37.     Auto  : Word;
  38.   end;
  39.  
  40.  
  41. VAR
  42.   F   : BtrieveFile;
  43.   Dat : DataRec;
  44.   Tmp : String;
  45.  
  46.  
  47. Procedure CheckIO;
  48.   begin
  49.     if (F.bResult <> bOkay) and (F.bResult <> bEOF) then
  50.     begin
  51.       Writeln('ERROR #', F.bResult);
  52.       Halt;
  53.     end;
  54.   end;
  55.  
  56.  
  57. BEGIN
  58.   { this file has a field of each Btrieve type }
  59.   F.Init('TYPES.DAT', nil, @Dat, SizeOf(Dat));
  60.   F.Open(bNormal, '');
  61.   CheckIO;
  62.  
  63.   F.Get(bStepFirst, bNoLock);
  64.  
  65.   While (F.bResult = bOkay) do
  66.   begin
  67.     ClrScr;
  68.  
  69.     with Dat do
  70.     begin
  71.       { Convert to strings, then convert from the string to the type and
  72.         display both values for comparison
  73.       }
  74.       Tmp := StringToStr(Str, SizeOf(Str));
  75.       StrToString(Tmp, Str);
  76.       Writeln('STRING   : [', Tmp, ']  [', StringToStr(Str, SizeOf(Str)), ']');
  77.  
  78.       Tmp := StringToStr(Ch, SizeOf(Ch));
  79.       StrToString(Tmp, Ch);
  80.       Writeln('CHAR     : [', Tmp, ']  [', StringToStr(Ch, SizeOf(Ch)), ']');
  81.  
  82.       Tmp := IntegerToStr(Int2, SizeOf(Int2), 5);
  83.       StrToInteger(Tmp, Int2, SizeOf(Int2));
  84.       Writeln('INTEGER  : [', Tmp, ']  [', IntegerToStr(Int2, SizeOf(Int2), 5), ']');
  85.  
  86.       Tmp := IntegerToStr(Int4, SizeOf(Int4), 8);
  87.       StrToInteger(Tmp, Int4, SizeOf(Int4));
  88.       Writeln('INTEGER  : [', Tmp, ']  [', IntegerToStr(Int4, SizeOf(Int4), 8), ']');
  89.  
  90.       Tmp := DecimalToStr(Dec6, SizeOf(Dec6));
  91.       StrToDecimal(Tmp, Dec6, SizeOf(Dec6));
  92.       Writeln('DECIMAL  : [', Tmp, ']  [', DecimalToStr(Dec6, SizeOf(Dec6)), ']');
  93.  
  94.       Tmp := DecimalToStr(Dec10, SizeOf(Dec10));
  95.       StrToDecimal(Tmp, Dec10, SizeOf(Dec10));
  96.       Writeln('DECIMAL  : [', Tmp, ']  [', DecimalToStr(Dec10, SizeOf(Dec10)), ']');
  97.  
  98.       Tmp := NumericToStr(Num1, SizeOf(Num1));
  99.       StrToNumeric(Tmp, Num1, SizeOf(Num1));
  100.       Writeln('NUMERIC  : [', Tmp, ']  [', NumericToStr(Num1, SizeOf(Num1)), ']');
  101.  
  102.       Tmp := NumericToStr(Num4, SizeOf(Num4));
  103.       StrToNumeric(Tmp, Num4, SizeOf(Num4));
  104.       Writeln('NUMERIC  : [', Tmp, ']  [', NumericToStr(Num4, SizeOf(Num4)), ']');
  105.  
  106.       Tmp := NumericToStr(Num9, SizeOf(Num9));
  107.       StrToNumeric(Tmp, Num9, SizeOf(Num9));
  108.       Writeln('NUMERIC  : [', Tmp, ']  [', NumericToStr(Num9, SizeOf(Num9)), ']');
  109.  
  110.       Tmp := BFloatToStr(BFlt4, SizeOf(BFlt4), 8,3);
  111.       StrToBFloat(Tmp, BFlt4, SizeOf(BFlt4));
  112.       Writeln('BFLOAT    : [', Tmp, ']  [', BFloatToStr(BFlt4, SizeOf(BFlt4), 8,2), ']');
  113.  
  114.       Tmp := BFloatToStr(BFlt8, SizeOf(BFlt8), 8,2);
  115.       StrToBFloat(Tmp, BFlt8, SizeOf(BFlt8));
  116.       Writeln('BFLOAT    : [', Tmp, ']  [', BFloatToStr(BFlt8, SizeOf(BFlt8), 8,2), ']');
  117.  
  118.       Tmp := DecimalToStr(Mony2, SizeOf(Mony2));
  119.       StrToDecimal(Tmp, Mony2, SizeOf(Mony2));
  120.       Writeln('MONEY    : [', Tmp, ']  [', DecimalToStr(Mony2, SizeOf(Mony2)), ']');
  121.  
  122.       Tmp := DecimalToStr(Mony10, SizeOf(Mony10));
  123.       StrToDecimal(Tmp, Mony10, SizeOf(Mony10));
  124.       Writeln('MONEY    : [', Tmp, ']  [', DecimalToStr(Mony10, SizeOf(Mony10)), ']');
  125.  
  126.       Writeln('DATE     : [', DateToStr(Date), ']');
  127.  
  128.       Writeln('TIME     : [', TimeToStr(Time), ']');
  129.  
  130.       Tmp := FloatToStr(Flt4, SizeOf(Flt4), 8, 2);
  131.       StrToFloat(Tmp, Flt4, SizeOf(Flt4));
  132.       Writeln('FLOAT    : [', Tmp, ']  [', FloatToStr(Flt4, SizeOf(Flt4), 8, 2), ']');
  133.  
  134.       Tmp := FloatToStr(Flt8, SizeOf(Flt8), 8, 2);
  135.       StrToFloat(Tmp, Flt8, SizeOf(Flt8));
  136.       Writeln('FLOAT    : [', Tmp, ']  [', FloatToStr(Flt8, SizeOf(Flt8), 8, 2), ']');
  137.  
  138.       Tmp := LStringToStr(LStr);
  139.       StrToLString(Tmp, LStr);
  140.       Writeln('LSTRING  : [', Tmp, ']  [', LStringToStr(LStr), ']');
  141.  
  142.       Tmp := ZStringToStr(ZStr);
  143.       StrToZString(Tmp, ZStr);
  144.       Writeln('ZSTRING  : [', Tmp, ']  [', ZStringToStr(ZStr), ']');
  145.  
  146.       Writeln('LOGICAL  : [', LogicalToStr(Logic1, SizeOf(Logic1)), ']');
  147.  
  148.       Writeln('LOGICAL  : [', LogicalToStr(Logic2, SizeOf(Logic2)), ']');
  149.     end;
  150.  
  151.     Writeln;
  152.     Writeln('Press a KEY ...');
  153.     ReadKey;
  154.     F.Get(bStepNext, bNoLock);
  155.   end;
  156.  
  157.   CheckIO;
  158.  
  159.   F.Close;
  160. END.